<?php
App::uses('AppController', 'Controller');
/**
 * UnidadeEnsinos Controller
 *
 * @property UnidadeEnsino $UnidadeEnsino
 * @property PaginatorComponent $Paginator
 * @property SessionComponent $Session
 */
class UnidadeEnsinosController extends AppController {

/**
 * Components
 *
 * @var array
 */
	public $components = array('Paginator', 'Session', 'Utilities');
        public $uses = array('UnidadeEnsino', 'Pais', 'Estado', 'Cidade');

/**
 * index method
 *
 * @return void
 */
	public function index() {
		$this->UnidadeEnsino->recursive = 0;
		$this->set('unidadeEnsinos', $this->Paginator->paginate('UnidadeEnsino', array('UnidadeEnsino.ativa' => 'S')));
	}

/**
 * view method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function view($id = null) {
		if (!$this->UnidadeEnsino->exists($id)) {
			throw new NotFoundException(__('Unidade de ensino inválida'));
		}
		$options = array('conditions' => array('UnidadeEnsino.' . $this->UnidadeEnsino->primaryKey => $id));
		$this->set('unidadeEnsino', $this->UnidadeEnsino->find('first', $options));
	}

/**
 * add method
 *
 * @return void
 */
	public function add() {
		if ($this->request->is('post')) {
                    if($this->Utilities->validarCNPJ($this->request->data['UnidadeEnsino']['cnpj'])){
			$this->UnidadeEnsino->create();
                        
                        $this->request->data['UnidadeEnsino']['ativa'] = 'S';
                        
			if ($this->UnidadeEnsino->save($this->request->data)) {
				$this->Session->setFlash(__('Unidade de ensino salva com sucesso.'));
				return $this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('A unidade de ensino não pôde ser salva. Por favor, tente novamente.'));
			}
                    }else{
                        $this->Session->setFlash(__('CNPJ inválido.'));
                    }
		}
                
                $unidadeEnsinos = $this->UnidadeEnsino->find('list');
                $this->Utilities->adicionarItemChaveVazia($unidadeEnsinos, '--Selecione--');
                
		$tipoUnidadeEnsinos = $this->UnidadeEnsino->TipoUnidadeEnsino->find('list');
                $this->Utilities->adicionarItemChaveVazia($tipoUnidadeEnsinos, '--Selecione--');
                
		$paises = $this->Pais->find('list', array('order' => array('nome')));
                $this->Utilities->adicionarItemChaveVazia($paises, '--Selecione--');
                $this->request->data['Controle']['pais_id'] = 1;
                
                $estados = $this->Estado->find('list', array('conditions' => array('pais_id' => 1)));
                $this->Utilities->adicionarItemChaveVazia($estados, '--Selecione--');
                $this->request->data['Controle']['estado_id'] = 5;
                
		$cidades = $this->Cidade->find('list', array('conditions' => array('estado_id' => 5)));
                $this->Utilities->adicionarItemChaveVazia($cidades, '--Selecione--');
                $this->request->data['UnidadeEnsino']['cidade_id'] = 981;
                
		$this->set(compact('unidadeEnsinos', 'tipoUnidadeEnsinos', 'paises', 'estados', 'cidades'));
	}

/**
 * edit method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function edit($id = null) {
		if (!$this->UnidadeEnsino->exists($id)) {
			throw new NotFoundException(__('Unidade de ensino inválida'));
		}
		if ($this->request->is(array('post', 'put'))) {
                    if($this->Utilities->validarCNPJ($this->request->data['UnidadeEnsino']['cnpj'])){
			if ($this->UnidadeEnsino->save($this->request->data)) {
				$this->Session->setFlash(__('Unidade de ensino alterada com sucesso.'));
				return $this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('A unidade de ensino não pôde ser alterada. Por favor, tente novamente.'));
			}
                    }else{
                        $this->Session->setFlash(__('CNPJ inválido.'));
                    }
		} else {
			$options = array('conditions' => array('UnidadeEnsino.' . $this->UnidadeEnsino->primaryKey => $id));
			$this->request->data = $this->UnidadeEnsino->find('first', $options);
		}
                $unidadeEnsinos = $this->UnidadeEnsino->find('list', array('conditions' => array('UnidadeEnsino.id <>' => $id)));
                $this->Utilities->adicionarItemChaveVazia($unidadeEnsinos, '--Selecione--');
                
		$tipoUnidadeEnsinos = $this->UnidadeEnsino->TipoUnidadeEnsino->find('list');
                $this->Utilities->adicionarItemChaveVazia($tipoUnidadeEnsinos, '--Selecione--');
                
                $local = $this->Cidade->find('first', array('contain' => array('Estado'),
                                                            'conditions' => array('Cidade.id' => $this->request->data['UnidadeEnsino']['cidade_id'])));
                
                $paises = $this->Pais->find('list', array('order' => array('nome')));
                $this->Utilities->adicionarItemChaveVazia($paises, '--Selecione--');
                $this->request->data['Controle']['pais_id'] = $local['Estado']['pais_id'];
                
                $estados = $this->Estado->find('list', array('conditions' => array('pais_id' => $local['Estado']['pais_id'])));
                $this->Utilities->adicionarItemChaveVazia($estados, '--Selecione--');
                $this->request->data['Controle']['estado_id'] = $local['Cidade']['estado_id'];
                
		$cidades = $this->Cidade->find('list', array('conditions' => array('estado_id' => $local['Cidade']['estado_id'])));
                $this->Utilities->adicionarItemChaveVazia($cidades, '--Selecione--');
                
		$this->set(compact('unidadeEnsinos', 'tipoUnidadeEnsinos', 'paises', 'estados', 'cidades'));
	}

/**
 * delete method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function delete($id = null) {
		$this->UnidadeEnsino->id = $id;
		if (!$this->UnidadeEnsino->exists()) {
			throw new NotFoundException(__('Unidade de ensino inválida'));
		}
		$this->request->allowMethod('post', 'delete');
                
                $this->request->data['UnidadeEnsino']['id'] = $id;
                $this->request->data['UnidadeEnsino']['ativa'] = 'N';
                
		if ($this->UnidadeEnsino->save($this->request->data)) {
			$this->Session->setFlash(__('Unidade de ensino excluída com sucesso.'));
		} else {
			$this->Session->setFlash(__('A unidade de ensino não pôde ser excluída. Por favor, tente novamente.'));
		}
		return $this->redirect(array('action' => 'index'));
	}
}
